[INFO] fetching crate mosaic-lang 0.1.0...
[INFO] fixing mosaic-lang-0.1.0 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate mosaic-lang 0.1.0 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate mosaic-lang 0.1.0
[INFO] finished tweaking crates.io crate mosaic-lang 0.1.0
[INFO] tweaked toml for crates.io crate mosaic-lang 0.1.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate mosaic-lang 0.1.0 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate mosaic-lang 0.1.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 53e68eda081de3980350157fc97345e779e5591563ea404ef6558f6ff96ac5a8
[INFO] running `Command { std: "docker" "start" "53e68eda081de3980350157fc97345e779e5591563ea404ef6558f6ff96ac5a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "53e68eda081de3980350157fc97345e779e5591563ea404ef6558f6ff96ac5a8" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "53e68eda081de3980350157fc97345e779e5591563ea404ef6558f6ff96ac5a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "53e68eda081de3980350157fc97345e779e5591563ea404ef6558f6ff96ac5a8" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling proc-macro2 v1.0.105
[INFO] [stderr]    Compiling quote v1.0.43
[INFO] [stderr]    Compiling cranelift-srcgen v0.127.1
[INFO] [stderr]    Compiling cranelift-isle v0.127.1
[INFO] [stderr]    Compiling cranelift-codegen-shared v0.127.1
[INFO] [stderr]     Checking cranelift-bitset v0.127.1
[INFO] [stderr]    Compiling target-lexicon v0.13.4
[INFO] [stderr]    Compiling libc v0.2.179
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking bumpalo v3.19.1
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking gimli v0.32.3
[INFO] [stderr]     Checking cranelift-control v0.127.1
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking wasmtime-internal-math v40.0.1
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]     Checking combine v4.6.7
[INFO] [stderr]     Checking cranelift-entity v0.127.1
[INFO] [stderr]     Checking clap_builder v4.5.54
[INFO] [stderr]     Checking downcast-rs v2.0.2
[INFO] [stderr]    Compiling cranelift-assembler-x64-meta v0.127.1
[INFO] [stderr]     Checking cranelift-bforest v0.127.1
[INFO] [stderr]     Checking regalloc2 v0.13.4
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling cranelift-codegen-meta v0.127.1
[INFO] [stderr]    Compiling cranelift-assembler-x64 v0.127.1
[INFO] [stderr]     Checking homedir v0.3.6
[INFO] [stderr]    Compiling cranelift-codegen v0.127.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling enum-as-inner v0.6.1
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking sysctl v0.6.0
[INFO] [stderr]     Checking mmap-rs v0.7.0
[INFO] [stderr]     Checking clap v4.5.54
[INFO] [stderr]     Checking cranelift-module v0.127.1
[INFO] [stderr]     Checking cranelift-frontend v0.127.1
[INFO] [stderr]     Checking cranelift-object v0.127.1
[INFO] [stderr]     Checking mosaic-lang v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/main.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/parser.rs (3 fixes)
[INFO] [stderr]        Fixed src/compiler/cranelift/types.rs (7 fixes)
[INFO] [stderr]        Fixed src/main.rs (2 fixes)
[INFO] [stderr]        Fixed src/utils.rs (3 fixes)
[INFO] [stderr]        Fixed src/compiler/cranelift/mod.rs (10 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/parser.rs:1166:19
[INFO] [stdout]      |
[INFO] [stdout] 1160 | ...       match self.expect_chars(&"}", true, &LineInfo::new_one_char(self.lexer.state().current_char, self.lexer.state().current_line)) {
[INFO] [stdout]      |                 ------------------------------------------------------------------------------------------------------------------------
[INFO] [stdout]      |                 |                                                     |                                |
[INFO] [stdout]      |                 |                                                     |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                 |                                                     |                                `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                 |                                                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                 |                                                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1166 | ...       match self.next_ast_node() {
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                 up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1176 | ...   }
[INFO] [stdout]      |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/parser.rs:1563:126
[INFO] [stdout]      |
[INFO] [stdout] 1546 | ...       let next = self.lexer.next_token();
[INFO] [stdout]      |               ----
[INFO] [stdout]      |               |
[INFO] [stdout]      |               `next` calls a custom destructor
[INFO] [stdout]      |               `next` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1563 | ...           LineInfo::new(left.line_info().begin_char(), self.lexer.state().current_char, left.line_info().begin_line(), self.lexer.state().cu...
[INFO] [stdout]      |                                                            ------------------                                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                            |                                                               |
[INFO] [stdout]      |                                                            |                                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                                            |                                                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                                            this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                                            up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1567 | ...   }
[INFO] [stdout]      |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout]      = note: `next` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/parser.rs:1809:29
[INFO] [stdout]      |
[INFO] [stdout] 1795 | ...if self.expect_chars(op, true, &LineInfo::new_one_char(self.lexer.state().current_char, self.lexer.state().current_line)).is_ok...
[INFO] [stdout]      |       ----------------------------------------------------------------------------------------------------------------------
[INFO] [stdout]      |       |                                                   |                                |
[INFO] [stdout]      |       |                                                   |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |       |                                                   |                                `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |       |                                                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |       |                                                   `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 1796 | ...    let Some(right) = self.parse_bitwise_expr() else {
[INFO] [stdout]      |                 -----    -------------------------
[INFO] [stdout]      |                 |        |
[INFO] [stdout]      |                 |        this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                 |        `#4` will be dropped later as of Edition 2024
[INFO] [stdout]      |                 `right` calls a custom destructor
[INFO] [stdout]      |                 `right` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1807 | ...                self.lexer.state().current_char,
[INFO] [stdout]      |                    ------------------
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                    up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1808 | ...                left.line_info().begin_line(),
[INFO] [stdout] 1809 | ...                self.lexer.state().current_line,
[INFO] [stdout]      |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                    up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1810 | ...            ),Rc::from(left), op.to_string(), Rc::from(right))
[INFO] [stdout] 1811 | ...        }
[INFO] [stdout]      |            - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout]      = note: `right` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/parser.rs:2145:50
[INFO] [stdout]      |
[INFO] [stdout] 2145 |         while let Some(Ok(Token::Ident(m, _))) = self.lexer.peek_next_token() {
[INFO] [stdout]      |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                  |
[INFO] [stdout]      |                                                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                                  up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2152 |             let _ = self.lexer.next_token();
[INFO] [stdout]      |                     -----------------------
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2153 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/parser.rs:2411:27
[INFO] [stdout]      |
[INFO] [stdout] 2411 |         while let Ok(_) = self.expect_char(&'$', true) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                           up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 2412 |             let name = match self.lexer.next_token() {
[INFO] [stdout]      |                              -----------------------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                              `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2419 |             if let Err(e) = self.expect_char(&':', true) {
[INFO] [stdout]      |                             ----------------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2423 |             let kind = match self.lexer.next_token() {
[INFO] [stdout]      |                              -----------------------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                              `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2430 |             let kind = match MacroArgKind::from_str(&self.file, &name, &kind) {
[INFO] [stdout]      |                              ------------------------------------------------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                              `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2436 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/reader.rs:28:78
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mmap = unsafe { MmapOptions::new(file_length).unwrap().with_file(&self.reader.file(), 0) }.map().unwrap();
[INFO] [stdout]    |                                                                              ^^^^^^^^^^^^^^^^^^^       --- borrow later used by call
[INFO] [stdout]    |                                                                              |
[INFO] [stdout]    |                                                                              this temporary value will be dropped at the end of the block
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/reader.rs:59:78
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let mmap = unsafe { MmapOptions::new(file_length).unwrap().with_file(&reader.file(), 0) }.map().unwrap();
[INFO] [stdout]    |                                                                              ^^^^^^^^^^^^^^       --- borrow later used by call
[INFO] [stdout]    |                                                                              |
[INFO] [stdout]    |                                                                              this temporary value will be dropped at the end of the block
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/main.rs:70:19
[INFO] [stdout]    |
[INFO] [stdout] 44 |           Command::Build { file, target, .. } => {
[INFO] [stdout]    |  ________________________________________________-
[INFO] [stdout] 45 | |             let triple = Triple::from_str(&target.unwrap_or("_".into())).unwrap_or(Triple::host());
[INFO] [stdout] ...  |
[INFO] [stdout] 70 | |             match cg.compile(true, None) {
[INFO] [stdout]    | |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    | |                   |
[INFO] [stdout]    | |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    | |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...  |
[INFO] [stdout] 85 | |         }?
[INFO] [stdout]    | |          -
[INFO] [stdout]    | |          |
[INFO] [stdout]    | |          now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    | |__________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 14s
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/parser.rs:1166:19
[INFO] [stdout]      |
[INFO] [stdout] 1160 | ...       match self.expect_chars(&"}", true, &LineInfo::new_one_char(self.lexer.state().current_char, self.lexer.state().current_line)) {
[INFO] [stdout]      |                 ------------------------------------------------------------------------------------------------------------------------
[INFO] [stdout]      |                 |                                                     |                                |
[INFO] [stdout]      |                 |                                                     |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                 |                                                     |                                `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                 |                                                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                 |                                                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1166 | ...       match self.next_ast_node() {
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                 up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1176 | ...   }
[INFO] [stdout]      |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/parser.rs:1563:126
[INFO] [stdout]      |
[INFO] [stdout] 1546 | ...       let next = self.lexer.next_token();
[INFO] [stdout]      |               ----
[INFO] [stdout]      |               |
[INFO] [stdout]      |               `next` calls a custom destructor
[INFO] [stdout]      |               `next` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1563 | ...           LineInfo::new(left.line_info().begin_char(), self.lexer.state().current_char, left.line_info().begin_line(), self.lexer.state().cu...
[INFO] [stdout]      |                                                            ------------------                                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                            |                                                               |
[INFO] [stdout]      |                                                            |                                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                                            |                                                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                                            this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                                            up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1567 | ...   }
[INFO] [stdout]      |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout]      = note: `next` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/parser.rs:1809:29
[INFO] [stdout]      |
[INFO] [stdout] 1795 | ...if self.expect_chars(op, true, &LineInfo::new_one_char(self.lexer.state().current_char, self.lexer.state().current_line)).is_ok...
[INFO] [stdout]      |       ----------------------------------------------------------------------------------------------------------------------
[INFO] [stdout]      |       |                                                   |                                |
[INFO] [stdout]      |       |                                                   |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |       |                                                   |                                `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |       |                                                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |       |                                                   `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 1796 | ...    let Some(right) = self.parse_bitwise_expr() else {
[INFO] [stdout]      |                 -----    -------------------------
[INFO] [stdout]      |                 |        |
[INFO] [stdout]      |                 |        this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                 |        `#4` will be dropped later as of Edition 2024
[INFO] [stdout]      |                 `right` calls a custom destructor
[INFO] [stdout]      |                 `right` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1807 | ...                self.lexer.state().current_char,
[INFO] [stdout]      |                    ------------------
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                    up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1808 | ...                left.line_info().begin_line(),
[INFO] [stdout] 1809 | ...                self.lexer.state().current_line,
[INFO] [stdout]      |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                    up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1810 | ...            ),Rc::from(left), op.to_string(), Rc::from(right))
[INFO] [stdout] 1811 | ...        }
[INFO] [stdout]      |            - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout]      = note: `right` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/parser.rs:2145:50
[INFO] [stdout]      |
[INFO] [stdout] 2145 |         while let Some(Ok(Token::Ident(m, _))) = self.lexer.peek_next_token() {
[INFO] [stdout]      |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                  |
[INFO] [stdout]      |                                                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                                  up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2152 |             let _ = self.lexer.next_token();
[INFO] [stdout]      |                     -----------------------
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 2153 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/parser.rs:2411:27
[INFO] [stdout]      |
[INFO] [stdout] 2411 |         while let Ok(_) = self.expect_char(&'$', true) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                           up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 2412 |             let name = match self.lexer.next_token() {
[INFO] [stdout]      |                              -----------------------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                              `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2419 |             if let Err(e) = self.expect_char(&':', true) {
[INFO] [stdout]      |                             ----------------------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2423 |             let kind = match self.lexer.next_token() {
[INFO] [stdout]      |                              -----------------------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                              `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2430 |             let kind = match MacroArgKind::from_str(&self.file, &name, &kind) {
[INFO] [stdout]      |                              ------------------------------------------------
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                              `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2436 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/reader.rs:28:78
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mmap = unsafe { MmapOptions::new(file_length).unwrap().with_file(&self.reader.file(), 0) }.map().unwrap();
[INFO] [stdout]    |                                                                              ^^^^^^^^^^^^^^^^^^^       --- borrow later used by call
[INFO] [stdout]    |                                                                              |
[INFO] [stdout]    |                                                                              this temporary value will be dropped at the end of the block
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/reader.rs:59:78
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let mmap = unsafe { MmapOptions::new(file_length).unwrap().with_file(&reader.file(), 0) }.map().unwrap();
[INFO] [stdout]    |                                                                              ^^^^^^^^^^^^^^       --- borrow later used by call
[INFO] [stdout]    |                                                                              |
[INFO] [stdout]    |                                                                              this temporary value will be dropped at the end of the block
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/main.rs:70:19
[INFO] [stdout]    |
[INFO] [stdout] 44 |           Command::Build { file, target, .. } => {
[INFO] [stdout]    |  ________________________________________________-
[INFO] [stdout] 45 | |             let triple = Triple::from_str(&target.unwrap_or("_".into())).unwrap_or(Triple::host());
[INFO] [stdout] ...  |
[INFO] [stdout] 70 | |             match cg.compile(true, None) {
[INFO] [stdout]    | |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    | |                   |
[INFO] [stdout]    | |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    | |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...  |
[INFO] [stdout] 85 | |         }?
[INFO] [stdout]    | |          -
[INFO] [stdout]    | |          |
[INFO] [stdout]    | |          now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    | |__________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] crater-edition-check: mosaic-lang v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking mosaic-lang v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::alloc::alloc`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::alloc::alloc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::null`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::ptr::null;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cranelift_codegen::gimli`
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use cranelift_codegen::gimli;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Architecture`
[INFO] [stdout]   --> src/main.rs:24:22
[INFO] [stdout]    |
[INFO] [stdout] 24 | use target_lexicon::{Architecture, Triple};
[INFO] [stdout]    |                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::compiler::cranelift::ast::flatten_ast`
[INFO] [stdout]  --> src/compiler/cranelift/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::compiler::cranelift::ast::flatten_ast;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::TypeBound`
[INFO] [stdout]  --> src/compiler/cranelift/mangle.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::parser::TypeBound;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `mangle_function`, `mangle_method`, and `mangle_type`
[INFO] [stdout]   --> src/compiler/cranelift/mangle.rs:79:46
[INFO] [stdout]    |
[INFO] [stdout] 79 |     use crate::compiler::cranelift::mangle::{mangle_function, mangle_method, mangle_type};
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::compiler::cranelift::types::CraneliftType`
[INFO] [stdout]   --> src/compiler/cranelift/mangle.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     use crate::compiler::cranelift::types::CraneliftType;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::Indirection`
[INFO] [stdout]   --> src/compiler/cranelift/mangle.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     use crate::utils::Indirection;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/compiler/cranelift/meta.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::compiler::traits::CompilationType`
[INFO] [stdout]  --> src/compiler/cranelift/meta.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::compiler::traits::CompilationType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CompilationType`
[INFO] [stdout]  --> src/compiler/cranelift/module.rs:4:50
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::compiler::traits::{CompilationModule, CompilationType};
[INFO] [stdout]   |                                                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/compiler/cranelift/module.rs:6:43
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeSet, HashMap, HashSet};
[INFO] [stdout]   |                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> src/compiler/cranelift/module.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AstNode`
[INFO] [stdout]  --> src/compiler/cranelift/types.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::parser::{AstNode, ParseType, TypeBound};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/compiler/cranelift/types.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Indirection`
[INFO] [stdout]  --> src/compiler/cranelift/value.rs:1:20
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::utils::{Indirection, OneOf};
[INFO] [stdout]   |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExtFuncData`, `ExternalName`, `FuncRef`, `GlobalValueData`, `UserExternalNameRef`, and `UserExternalName`
[INFO] [stdout]   --> src/compiler/cranelift/mod.rs:37:56
[INFO] [stdout]    |
[INFO] [stdout] 37 | ...g, ExtFuncData, ExternalName, FuncRef, Function, GlobalValue, GlobalValueData, InstBuilder, MemFlags, Signature, StackSlot, StackSlotData, StackSlotKind, UserExternalName, UserExternalNameRef, U...
[INFO] [stdout]    |       ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^                         ^^^^^^^^^^^^^^^                                                                             ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Init`
[INFO] [stdout]   --> src/compiler/cranelift/mod.rs:42:72
[INFO] [stdout]    |
[INFO] [stdout] 42 | use cranelift_module::{default_libcall_names, DataDescription, FuncId, Init, Linkage, Module};
[INFO] [stdout]    |                                                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeMap`
[INFO] [stdout]   --> src/compiler/cranelift/mod.rs:44:24
[INFO] [stdout]    |
[INFO] [stdout] 44 | use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::compiler::indexing::FileIndexer`
[INFO] [stdout]   --> src/compiler/cranelift/mod.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | use crate::compiler::indexing::FileIndexer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/compiler/traits.rs:2:43
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::{BTreeSet, HashMap, HashSet};
[INFO] [stdout]   |                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/compiler/traits.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DowncastSync`
[INFO] [stdout]  --> src/compiler/traits.rs:9:44
[INFO] [stdout]   |
[INFO] [stdout] 9 | use downcast_rs::{impl_downcast, Downcast, DowncastSync};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ArmArchitecture`
[INFO] [stdout]   --> src/compiler/align.rs:10:57
[INFO] [stdout]    |
[INFO] [stdout] 10 | use target_lexicon::{Aarch64Architecture, Architecture, ArmArchitecture, CDataModel, Triple};
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `target_lexicon::Triple`
[INFO] [stdout]   --> src/compiler/align.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     use target_lexicon::Triple;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `alignment_of_cranelift_type_on_architecture` and `calculate_data_cranelift`
[INFO] [stdout]   --> src/compiler/align.rs:65:34
[INFO] [stdout]    |
[INFO] [stdout] 65 |     use crate::compiler::align::{alignment_of_cranelift_type_on_architecture, calculate_data_cranelift};
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::compiler::cranelift::types::CraneliftType`
[INFO] [stdout]   --> src/compiler/align.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     use crate::compiler::cranelift::types::CraneliftType;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::Indirection`
[INFO] [stdout]   --> src/compiler/align.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     use crate::utils::Indirection;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::AstNode`
[INFO] [stdout]  --> src/compiler/indexing.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::parser::AstNode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::alloc::alloc`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::alloc::alloc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::null`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::ptr::null;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cranelift_codegen::gimli`
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use cranelift_codegen::gimli;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Architecture`
[INFO] [stdout]   --> src/main.rs:24:22
[INFO] [stdout]    |
[INFO] [stdout] 24 | use target_lexicon::{Architecture, Triple};
[INFO] [stdout]    |                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::compiler::cranelift::ast::flatten_ast`
[INFO] [stdout]  --> src/compiler/cranelift/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::compiler::cranelift::ast::flatten_ast;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::TypeBound`
[INFO] [stdout]  --> src/compiler/cranelift/mangle.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::parser::TypeBound;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `mangle_function` and `mangle_method`
[INFO] [stdout]   --> src/compiler/cranelift/mangle.rs:79:46
[INFO] [stdout]    |
[INFO] [stdout] 79 |     use crate::compiler::cranelift::mangle::{mangle_function, mangle_method, mangle_type};
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/compiler/cranelift/meta.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::compiler::traits::CompilationType`
[INFO] [stdout]  --> src/compiler/cranelift/meta.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::compiler::traits::CompilationType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CompilationType`
[INFO] [stdout]  --> src/compiler/cranelift/module.rs:4:50
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::compiler::traits::{CompilationModule, CompilationType};
[INFO] [stdout]   |                                                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/compiler/cranelift/module.rs:6:43
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeSet, HashMap, HashSet};
[INFO] [stdout]   |                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> src/compiler/cranelift/module.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AstNode`
[INFO] [stdout]  --> src/compiler/cranelift/types.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::parser::{AstNode, ParseType, TypeBound};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/compiler/cranelift/types.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Indirection`
[INFO] [stdout]  --> src/compiler/cranelift/value.rs:1:20
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::utils::{Indirection, OneOf};
[INFO] [stdout]   |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExtFuncData`, `ExternalName`, `FuncRef`, `GlobalValueData`, `UserExternalNameRef`, and `UserExternalName`
[INFO] [stdout]   --> src/compiler/cranelift/mod.rs:37:56
[INFO] [stdout]    |
[INFO] [stdout] 37 | ...g, ExtFuncData, ExternalName, FuncRef, Function, GlobalValue, GlobalValueData, InstBuilder, MemFlags, Signature, StackSlot, StackSlotData, StackSlotKind, UserExternalName, UserExternalNameRef, U...
[INFO] [stdout]    |       ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^                         ^^^^^^^^^^^^^^^                                                                             ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Init`
[INFO] [stdout]   --> src/compiler/cranelift/mod.rs:42:72
[INFO] [stdout]    |
[INFO] [stdout] 42 | use cranelift_module::{default_libcall_names, DataDescription, FuncId, Init, Linkage, Module};
[INFO] [stdout]    |                                                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeMap`
[INFO] [stdout]   --> src/compiler/cranelift/mod.rs:44:24
[INFO] [stdout]    |
[INFO] [stdout] 44 | use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::compiler::indexing::FileIndexer`
[INFO] [stdout]   --> src/compiler/cranelift/mod.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | use crate::compiler::indexing::FileIndexer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/compiler/traits.rs:2:43
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::{BTreeSet, HashMap, HashSet};
[INFO] [stdout]   |                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/compiler/traits.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DowncastSync`
[INFO] [stdout]  --> src/compiler/traits.rs:9:44
[INFO] [stdout]   |
[INFO] [stdout] 9 | use downcast_rs::{impl_downcast, Downcast, DowncastSync};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ArmArchitecture`
[INFO] [stdout]   --> src/compiler/align.rs:10:57
[INFO] [stdout]    |
[INFO] [stdout] 10 | use target_lexicon::{Aarch64Architecture, Architecture, ArmArchitecture, CDataModel, Triple};
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::AstNode`
[INFO] [stdout]  --> src/compiler/indexing.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::parser::AstNode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cranelift_codegen::entity::EntityRef`
[INFO] [stdout]  --> src/compiler/cranelift/builders.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use cranelift_codegen::entity::EntityRef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cranelift_codegen::entity::EntityRef`
[INFO] [stdout]  --> src/compiler/cranelift/builders.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use cranelift_codegen::entity::EntityRef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/compiler/analyser/mod.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |             AstNode::MemberExpr(_, r, _) => {
[INFO] [stdout]    |             ---------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 62 |             AstNode::MemberExpr(..) => continue,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/compiler/analyser/mod.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |             AstNode::MemberExpr(_, r, _) => {
[INFO] [stdout]    |             ---------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 62 |             AstNode::MemberExpr(..) => continue,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/compiler/cranelift/linker.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |             ref file,
[INFO] [stdout]    |             ^^^^^^^^ help: try ignoring the field: `file: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/compiler/cranelift/linker.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |             ref target,
[INFO] [stdout]    |             ^^^^^^^^^^ help: try ignoring the field: `target: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/compiler/cranelift/linker.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |             ref file,
[INFO] [stdout]    |             ^^^^^^^^ help: try ignoring the field: `file: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/compiler/cranelift/linker.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |             ref target,
[INFO] [stdout]    |             ^^^^^^^^^^ help: try ignoring the field: `target: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/compiler/cranelift/mod.rs:196:13
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let mut obj_builder =
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/compiler/cranelift/mod.rs:633:49
[INFO] [stdout]     |
[INFO] [stdout] 633 |                         let Some((offset, _, _, ty)) = meta.fields.iter().find(|(_, _, name, _)| name == prop) else {
[INFO] [stdout]     |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/compiler/cranelift/mod.rs:196:13
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let mut obj_builder =
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/compiler/cranelift/mod.rs:633:49
[INFO] [stdout]     |
[INFO] [stdout] 633 |                         let Some((offset, _, _, ty)) = meta.fields.iter().find(|(_, _, name, _)| name == prop) else {
[INFO] [stdout]     |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_info`
[INFO] [stdout]    --> src/compiler/cranelift/mod.rs:732:63
[INFO] [stdout]     |
[INFO] [stdout] 732 |             AstNode::DataInitExpr { name, fields: raw_fields, line_info } => {
[INFO] [stdout]     |                                                               ^^^^^^^^^ help: try ignoring the field: `line_info: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/compiler/cranelift/mod.rs:950:34
[INFO] [stdout]     |
[INFO] [stdout] 950 | ...                   let (f, fty) = self
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/compiler/cranelift/mod.rs:1284:28
[INFO] [stdout]      |
[INFO] [stdout] 1284 |                     (from, to) => Err(Box::new([CompilationError::InvalidCast(
[INFO] [stdout]      |                            ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]     --> src/compiler/cranelift/mod.rs:1763:39
[INFO] [stdout]      |
[INFO] [stdout] 1763 |             AstNode::NumberLiteral(_, n) => Some(Type::Int32),
[INFO] [stdout]      |                                       ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inner`
[INFO] [stdout]     --> src/compiler/cranelift/mod.rs:1816:34
[INFO] [stdout]      |
[INFO] [stdout] 1816 |                     (Type::Slice(inner, len, m1, n1), Type::FatPtr(_, m2, n2)) if (m1 == m2 || (m1 && !m2)) && n1 == n2 => ty,
[INFO] [stdout]      |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]     --> src/compiler/cranelift/mod.rs:1816:41
[INFO] [stdout]      |
[INFO] [stdout] 1816 |                     (Type::Slice(inner, len, m1, n1), Type::FatPtr(_, m2, n2)) if (m1 == m2 || (m1 && !m2)) && n1 == n2 => ty,
[INFO] [stdout]      |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/compiler/cranelift/mod.rs:1823:22
[INFO] [stdout]      |
[INFO] [stdout] 1823 |                     (from, to) => return None,
[INFO] [stdout]      |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/compiler/cranelift/mod.rs:1823:28
[INFO] [stdout]      |
[INFO] [stdout] 1823 |                     (from, to) => return None,
[INFO] [stdout]      |                            ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_info`
[INFO] [stdout]    --> src/compiler/cranelift/mod.rs:732:63
[INFO] [stdout]     |
[INFO] [stdout] 732 |             AstNode::DataInitExpr { name, fields: raw_fields, line_info } => {
[INFO] [stdout]     |                                                               ^^^^^^^^^ help: try ignoring the field: `line_info: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/compiler/cranelift/mod.rs:950:34
[INFO] [stdout]     |
[INFO] [stdout] 950 | ...                   let (f, fty) = self
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/compiler/cranelift/mod.rs:1284:28
[INFO] [stdout]      |
[INFO] [stdout] 1284 |                     (from, to) => Err(Box::new([CompilationError::InvalidCast(
[INFO] [stdout]      |                            ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]     --> src/compiler/cranelift/mod.rs:1763:39
[INFO] [stdout]      |
[INFO] [stdout] 1763 |             AstNode::NumberLiteral(_, n) => Some(Type::Int32),
[INFO] [stdout]      |                                       ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inner`
[INFO] [stdout]     --> src/compiler/cranelift/mod.rs:1816:34
[INFO] [stdout]      |
[INFO] [stdout] 1816 |                     (Type::Slice(inner, len, m1, n1), Type::FatPtr(_, m2, n2)) if (m1 == m2 || (m1 && !m2)) && n1 == n2 => ty,
[INFO] [stdout]      |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]     --> src/compiler/cranelift/mod.rs:1816:41
[INFO] [stdout]      |
[INFO] [stdout] 1816 |                     (Type::Slice(inner, len, m1, n1), Type::FatPtr(_, m2, n2)) if (m1 == m2 || (m1 && !m2)) && n1 == n2 => ty,
[INFO] [stdout]      |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/compiler/cranelift/mod.rs:1823:22
[INFO] [stdout]      |
[INFO] [stdout] 1823 |                     (from, to) => return None,
[INFO] [stdout]      |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/compiler/cranelift/mod.rs:1823:28
[INFO] [stdout]      |
[INFO] [stdout] 1823 |                     (from, to) => return None,
[INFO] [stdout]      |                            ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:263:51
[INFO] [stdout]     |
[INFO] [stdout] 263 |             CompilationError::UnknownModule(file, trace, modules) => {
[INFO] [stdout]     |                                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:314:55
[INFO] [stdout]     |
[INFO] [stdout] 314 |             CompilationError::UndefinedVariable(file, trace, name) => {
[INFO] [stdout]     |                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:338:51
[INFO] [stdout]     |
[INFO] [stdout] 338 |             CompilationError::UndefinedData(file, trace, name) => {
[INFO] [stdout]     |                                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:381:52
[INFO] [stdout]     |
[INFO] [stdout] 381 |             CompilationError::DualDefinition(file, trace, name) => {
[INFO] [stdout]     |                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:404:55
[INFO] [stdout]     |
[INFO] [stdout] 404 |             CompilationError::UndefinedOperator(file, trace, op) => {
[INFO] [stdout]     |                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:420:50
[INFO] [stdout]     |
[INFO] [stdout] 420 |             CompilationError::CannotMutate(file, trace, name) => {
[INFO] [stdout]     |                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:436:57
[INFO] [stdout]     |
[INFO] [stdout] 436 |             CompilationError::MismatchedTypeInDef(file, trace, name, expected, got) => {
[INFO] [stdout]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:482:49
[INFO] [stdout]     |
[INFO] [stdout] 482 |             CompilationError::InvalidCast(file, trace, from, to) => {
[INFO] [stdout]     |                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:501:55
[INFO] [stdout]     |
[INFO] [stdout] 501 |             CompilationError::CannotMakePointer(file, trace, to) => {
[INFO] [stdout]     |                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:529:46
[INFO] [stdout]     |
[INFO] [stdout] 529 |             CompilationError::NotFreed(file, trace, item) => {
[INFO] [stdout]     |                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:599:27
[INFO] [stdout]     |
[INFO] [stdout] 599 |     pub fn parse_complete(mut self) -> Result<ParsedFile, Vec<ParseError>> {
[INFO] [stdout]     |                           ----^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:263:51
[INFO] [stdout]     |
[INFO] [stdout] 263 |             CompilationError::UnknownModule(file, trace, modules) => {
[INFO] [stdout]     |                                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:314:55
[INFO] [stdout]     |
[INFO] [stdout] 314 |             CompilationError::UndefinedVariable(file, trace, name) => {
[INFO] [stdout]     |                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:338:51
[INFO] [stdout]     |
[INFO] [stdout] 338 |             CompilationError::UndefinedData(file, trace, name) => {
[INFO] [stdout]     |                                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:381:52
[INFO] [stdout]     |
[INFO] [stdout] 381 |             CompilationError::DualDefinition(file, trace, name) => {
[INFO] [stdout]     |                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:404:55
[INFO] [stdout]     |
[INFO] [stdout] 404 |             CompilationError::UndefinedOperator(file, trace, op) => {
[INFO] [stdout]     |                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:420:50
[INFO] [stdout]     |
[INFO] [stdout] 420 |             CompilationError::CannotMutate(file, trace, name) => {
[INFO] [stdout]     |                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:436:57
[INFO] [stdout]     |
[INFO] [stdout] 436 |             CompilationError::MismatchedTypeInDef(file, trace, name, expected, got) => {
[INFO] [stdout]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:482:49
[INFO] [stdout]     |
[INFO] [stdout] 482 |             CompilationError::InvalidCast(file, trace, from, to) => {
[INFO] [stdout]     |                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:501:55
[INFO] [stdout]     |
[INFO] [stdout] 501 |             CompilationError::CannotMakePointer(file, trace, to) => {
[INFO] [stdout]     |                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace`
[INFO] [stdout]    --> src/errors.rs:529:46
[INFO] [stdout]     |
[INFO] [stdout] 529 |             CompilationError::NotFreed(file, trace, item) => {
[INFO] [stdout]     |                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_trace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/parser.rs:920:30
[INFO] [stdout]     |
[INFO] [stdout] 920 |                     Some(Err(e)) => match self.parse_type() {
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/parser.rs:940:26
[INFO] [stdout]     |
[INFO] [stdout] 940 |                 Some(Err(e)) => match self.parse_type() {
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:599:27
[INFO] [stdout]     |
[INFO] [stdout] 599 |     pub fn parse_complete(mut self) -> Result<ParsedFile, Vec<ParseError>> {
[INFO] [stdout]     |                           ----^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/reader.rs:28:79
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mmap = unsafe { MmapOptions::new(file_length).unwrap().with_file(&self.reader.file(), 0) }.map().unwrap();
[INFO] [stdout]    |                                                                               ^^^^^^^^^^^^^^^^^^   -   --- borrow later used by call
[INFO] [stdout]    |                                                                               |                    |
[INFO] [stdout]    |                                                                               |                    temporary value is freed at the end of this statement
[INFO] [stdout]    |                                                                               creates a temporary value which is freed while still in use
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/reader.rs:59:79
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let mmap = unsafe { MmapOptions::new(file_length).unwrap().with_file(&reader.file(), 0) }.map().unwrap();
[INFO] [stdout]    |                                                                               ^^^^^^^^^^^^^   -   --- borrow later used by call
[INFO] [stdout]    |                                                                               |               |
[INFO] [stdout]    |                                                                               |               temporary value is freed at the end of this statement
[INFO] [stdout]    |                                                                               creates a temporary value which is freed while still in use
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/parser.rs:920:30
[INFO] [stdout]     |
[INFO] [stdout] 920 |                     Some(Err(e)) => match self.parse_type() {
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/parser.rs:940:26
[INFO] [stdout]     |
[INFO] [stdout] 940 |                 Some(Err(e)) => match self.parse_type() {
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0716`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mosaic-lang` (bin "msc") due to 2 previous errors; 58 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/reader.rs:28:79
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mmap = unsafe { MmapOptions::new(file_length).unwrap().with_file(&self.reader.file(), 0) }.map().unwrap();
[INFO] [stdout]    |                                                                               ^^^^^^^^^^^^^^^^^^   -   --- borrow later used by call
[INFO] [stdout]    |                                                                               |                    |
[INFO] [stdout]    |                                                                               |                    temporary value is freed at the end of this statement
[INFO] [stdout]    |                                                                               creates a temporary value which is freed while still in use
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/reader.rs:59:79
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let mmap = unsafe { MmapOptions::new(file_length).unwrap().with_file(&reader.file(), 0) }.map().unwrap();
[INFO] [stdout]    |                                                                               ^^^^^^^^^^^^^   -   --- borrow later used by call
[INFO] [stdout]    |                                                                               |               |
[INFO] [stdout]    |                                                                               |               temporary value is freed at the end of this statement
[INFO] [stdout]    |                                                                               creates a temporary value which is freed while still in use
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0716`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mosaic-lang` (bin "msc" test) due to 2 previous errors; 52 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "53e68eda081de3980350157fc97345e779e5591563ea404ef6558f6ff96ac5a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "53e68eda081de3980350157fc97345e779e5591563ea404ef6558f6ff96ac5a8", kill_on_drop: false }`
[INFO] [stdout] 53e68eda081de3980350157fc97345e779e5591563ea404ef6558f6ff96ac5a8
